
<template>
  <div>
    <!-- 面包屑导航 -->
    <el-breadcrumb separator-class="el-icon-arrow-right">
      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
      <el-breadcrumb-item>用户注册</el-breadcrumb-item>
    </el-breadcrumb>
    <!-- 搜索筛选 -->
    <el-form :inline="true" :model="formInline" class="user-search">
      <el-form-item label="搜索：">
        <!--      输入用户名/账号/手机号-->
        <el-input size="small" v-model="formInline.name" placeholder="请输入用户名/账号/手机号"></el-input>
      </el-form-item>
      <el-form-item>  <div class="block">
<!--        <span class="demonstration">默认</span>-->
<!--        <el-date-picker-->
<!--          v-model="formInline.value1"-->
<!--          type="datetimerange"-->
<!--          range-separator="至"-->
<!--          start-placeholder="开始日期"-->
<!--          end-placeholder="结束日期"-->
<!--          value-format="yyyy-MM-dd"-->

<!--        >-->
<!--        </el-date-picker>-->
      </div></el-form-item>
      <el-form-item>
        <el-button size="small" type="primary" icon="el-icon-search" @click="search">搜索</el-button>
      </el-form-item>
    </el-form>
    <!--列表-->
    <el-table size="small" :data="listData" highlight-current-row v-loading="loading" style="width: 100%;">
      <el-table-column align="center" type="selection" width="60">
      </el-table-column>
      <el-table-column sortable align="center" prop="id" label="ID" width="100">
      </el-table-column>
      <el-table-column label="头像"  prop="contactPersonTel" >
        <template slot-scope="scope">
          <el-image :src="scope.row.face" style="width: 50px; height: 50px"></el-image>
        </template>
      </el-table-column>
      <el-table-column sortable align="center" prop="name" label="名字" width="150">
      </el-table-column>
      <el-table-column sortable align="center" prop="username" label="用户名" width="150">
      </el-table-column>
      <el-table-column sortable align="center" prop="userpass" label="用户密码" width="150">
      </el-table-column>
      <el-table-column sortable align="center" prop=tel" label="手机号" width="150">
      </el-table-column>
<!--      <el-table-column sortable align="center" prop="email" label="邮箱" width="200">-->
<!--      </el-table-column>-->
      <el-table-column sortable align="center" prop="sex" label="性别" width="200">
      </el-table-column>
<!--      <el-table-column sortable align="center" prop="birthday" label="生日" width="200">-->
<!--      </el-table-column>-->
<!--      <el-table-column sortable align="center" prop="registerTime" label="注册日期" width="250">-->
<!--      </el-table-column>-->
<!--      <el-table-column sortable align="center" prop="address.title" label="地区id" width="150">-->
<!--      </el-table-column>-->

      <el-table-column sortable align="center" prop="numberId" label="身份证号" width="150">
      </el-table-column>
      <el-table-column label="身份证正面"  width="150px" >
        <template slot-scope="scope">
          <el-image :src="scope.row.frontPhotoo" style="width: 50px; height: 50px"></el-image>
        </template>
      </el-table-column><!--          <el-table-column sortable align="center" prop="frontPhotoId" label="身份证正面" width="150">-->
<!--      </el-table-column>-->
          <el-table-column label="身份证反面"  width="150px" >
            <template slot-scope="scope">
              <el-image :src="scope.row.backPhoto" style="width: 50px; height: 50px"></el-image>
            </template>
          </el-table-column>
<!--              <el-table-column sortable align="center" prop="backPhotoId" label="身份证反面" width="300">-->
<!--      </el-table-column>-->
      <el-table-column sortable align="center" prop="state.title" label="求职状态" width="200">
      </el-table-column>
      <el-table-column sortable align="center" prop="entryTime.title" label="入职时间" width="200">
      </el-table-column>

<!--      <el-table-column sortable align="center" prop="companyBlackCount" label="拉黑次数" width="150">-->
<!--      </el-table-column>-->
      <el-table-column align="center" sortable prop="isBlack" label="是否拉黑" width="150">
      </el-table-column>
      <el-table-column align="center" label="操作" min-width="400">
        <template slot-scope="scope">
          <el-button size="mini" @click="handleEditcom(scope.$index, scope.row)">预览用户信息</el-button>
          <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
          <el-button size="mini" type="danger" @click="deleteUser(scope.$index, scope.row)">删除</el-button>
          <el-button size="mini" type="danger" @click="resetpasswords(scope.row)">重置密码</el-button>
          <el-button size="mini" type="danger" @click="resetpic(scope.row)">重置头像</el-button>
        </template>
      </el-table-column>

    </el-table>
    <!-- 分页组件 -->
    <Pagination v-bind:child-msg="pageparm" @callFather="callFather"></Pagination>
    <!-- 编辑界面 -->
    <el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @click="closeDialog">
      <el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm">
        <el-form-item label="身高" prop="companyAccount">
          <el-input size="small" v-model="editForm.height" auto-complete="off" placeholder="请输入"></el-input>
        </el-form-item>
        <el-form-item label="体重" prop="companyEmail">
          <el-input size="small" v-model="editForm.weight" auto-complete="off" placeholder="请输入"></el-input>
        </el-form-item>
<!--        <el-form-item label="邮箱" prop="contactPerson">-->
<!--          <el-input size="small" v-model="editForm.email" auto-complete="off" placeholder="请输入"></el-input>-->
<!--        </el-form-item>-->
        <el-table-column sortable align="center" prop="address.title" label="详细地址" width="200">
        </el-table-column>

        <el-form-item label="婚姻状态" prop="companyCode">
          <el-input size="small" v-model="editForm.maritalStatus.title" auto-complete="off" placeholder="请输入"></el-input>
        </el-form-item>
<!--        <el-form-item label="籍贯" prop="nationId">-->
<!--          <el-input size="small" v-model="editForm.address.title" auto-complete="off" placeholder="请输入"></el-input>-->
<!--        </el-form-item>-->
        <el-form-item label="宗教信仰" prop="religiousbelief">
          <el-input size="small" v-model="editForm.religiousBelief" auto-complete="off" placeholder="请输入"></el-input>
        </el-form-item>
<!--        <el-form-item label="详细地址">-->
<!--          <el-input size="small" v-model="editForm.detailsaAddress" auto-complete="off" placeholder="请输入" disabled></el-input>-->
<!--        </el-form-item>-->
        <el-form-item label="政治面貌" prop="political">
          <el-input size="small" v-model="editForm.politicalOutlook" auto-complete="off" placeholder="请输入"></el-input>
        </el-form-item>
        <el-form-item label="期望薪资" prop="positionId">
          <el-input size="small" v-model="editForm.expectedSalary.title" auto-complete="off" placeholder="请输入"></el-input>
        </el-form-item>
        <el-form-item label="期望职位" prop="expectedSalaryId">
          <el-input size="small" v-model="editForm.position.title" auto-complete="off" placeholder="请输入"></el-input>
        </el-form-item>

<!--        <el-form-item label="期望职位" prop="position">-->
<!--        <template>-->
<!--          <el-select v-model="editForm.position.id" filterable placeholder="请选择">-->
<!--            <el-option-->
<!--              v-for="item in editForm.positionList"-->
<!--              :key="item.id"-->
<!--              :label="item.title"-->
<!--              :value="item.id">-->
<!--            </el-option>-->
<!--          </el-select>-->
<!--        </template>-->
<!--      </el-form-item>-->
<!--        <el-form-item label="公司规模" prop="companyScale">-->
<!--          <template>-->
<!--            <el-select v-model="editForm.companyScale.id" filterable placeholder="请选择">-->
<!--              <el-option-->
<!--                v-for="item in editForm.companyScaleList"-->
<!--                :key="item.id"-->
<!--                :label="item.title"-->
<!--                :value="item.id">-->
<!--              </el-option>-->
<!--            </el-select>-->
<!--          </template>-->
<!--        </el-form-item>-->


<!--        <el-form-item label="期望职位" prop="expectedSalary">-->
<!--          <template>-->
<!--            <el-select v-model="editForm.address.title" filterable placeholder="请选择">-->
<!--              <el-option-->
<!--                v-for="item in editForm.expectedSalaryList"-->
<!--                :key="item.id"-->
<!--                :label="item.title"-->
<!--                :value="item.id">-->
<!--              </el-option>-->
<!--            </el-select>-->
<!--          </template>-->
<!--        </el-form-item>-->

        <el-form-item label="期望城市" prop="address">
          <el-input size="small" v-model="editForm.address.title" auto-complete="off" placeholder="请输入"></el-input>
        </el-form-item>
      </el-form>

      <div slot="footer" class="dialog-footer">
        <el-button size="small" @click="closeDialog">取消</el-button>
        <el-button size="small" type="primary" :loading="loading" class="title" @click="submitForm('editForm')">保存</el-button>
      </div>
    </el-dialog>
    <!--  不可以修改  =============================================================-->
    <el-dialog :title="titles" :visible.sync="editFormVisiblea" width="50%" @click="closeDialog('editForm')">
      <el-form label-width="120px" :model="editForm" ref="editForm">
        <el-row>
          <el-col :span="12">
<!--            <el-form-item label="民族" >-->
<!--              <el-input size="small" v-model="editForm.nation.title" auto-complete="off" placeholder="请输入"></el-input>-->
<!--            </el-form-item>-->
            <el-form-item label="民族">
              <el-input size="small" v-model="editForm.nation.title" auto-complete="off" placeholder="请输入" disabled></el-input>
            </el-form-item>
            <el-form-item label="籍贯" prop="nationId">
              <el-input size="small" v-model="editForm.address.title" auto-complete="off" placeholder="请输入" disabled></el-input>
            </el-form-item>
            <el-form-item label="健康状态">
              <el-input size="small" v-model="editForm.healthStatus" auto-complete="off" placeholder="请输入" disabled></el-input>
            </el-form-item>
            <el-form-item label="拉黑次数">
              <el-input size="small" v-model="editForm.userinfoBlackCount" auto-complete="off" placeholder="请输入" disabled></el-input>
            </el-form-item>
            <el-form-item label="注册时间">
              <el-input size="small" v-model="editForm.registerTime" auto-complete="off" placeholder="请输入" disabled></el-input>
            </el-form-item>
            <el-form-item label="生日" >
              <el-input size="small" v-model="editForm.birthday" auto-complete="off" placeholder="请输入" disabled></el-input>
            </el-form-item>

            <el-form-item label="地区Id" prop="contactPerson">
              <el-input size="small" v-model="editForm.address.title" auto-complete="off" placeholder="请输入" disabled>></el-input>
            </el-form-item>
            <!--            <el-form-item label="地区">-->
<!--              <el-input size="small" v-model="editForm.address.title" auto-complete="off" placeholder="请输入通知回调" disabled></el-input>-->
<!--            </el-form-item>-->

<!--            <el-form-item label="企业名称">-->
<!--              <el-input size="small" v-model="editForm.firmName" auto-complete="off" placeholder="请输入" disabled></el-input>-->
<!--            </el-form-item>-->

            <el-form-item label="投递次数">
              <el-input size="small" v-model="editForm.deliverCount" auto-complete="off" placeholder="请输入" disabled></el-input>
            </el-form-item>
            <el-form-item label="浏览数">
              <el-input size="small" v-model="editForm.viewsCount" auto-complete="off" placeholder="请输入" disabled></el-input>
            </el-form-item>
          </el-col>

        </el-row>
<!--        <el-form-item label="备注">-->
<!--          <el-input size="small" v-model="editForm.remark" auto-complete="off" placeholder="请输入微" disabled></el-input>-->
<!--        </el-form-item>-->
      </el-form>
    </el-dialog>
  </div>
</template>

<script>
  import { deptList, deptSave, deptDelete } from '../../api/userMG'
  import Pagination from '../../components/Pagination'
  export default {
    data() {
      return {
        isShowAddressInfo:false,
        zid:[],
        nshow: true, //switch开启
        fshow: false, //switch关闭
        loading: false, //是显示加载
        editFormVisible: false, //控制编辑页面显示与隐藏
        editFormVisiblea:false,
        title: '添加',
        titles: '信息',
        value1:'',
        props: {
          lazy: true,
          lazyLoad:this.lazyLoad,
        },
        editForm: {
          id: '',
          //账号
          name:'',
          //名字
          username:'',
          //密码
          userpass:'',
          sex:"",
          birthday:"",
          registerTime:"",
          addressId:"",
          detailsaAddress:"",
          numberId:"",
          frontPhotoId:"",
          backPhotoId:"",
          height:"",
          weight:"",
          healthStatus:"",
          nativeId:"",
          religiousBelief:"",
          face:"",
          nationId:"1",
          politicalOutlook:"",
          maritalStatusId:"",
          userinfo_black_count:"",
          personal_advantage:"",
          stateId:"",
          positionId:"",
          expectcityId:"",
          expectedSalaryId:"",
          job_time_id:"",
          skills:"",
          love:"",
          evaluation:"",
          viewsCount:"",
          deliverCount:"",
          personalHonor:"",
          makePublic:"",
          isBlack:"",
          religiousbelief:"",
          nation:"",
          title:"",
          maritalStatus:"",
          position:"",
          expectedSalary:"",
          healthStatus:"",
          entryTime:"",
          jobTime:"",
          addressId:"",
          frontPhotoo:"",
          backPhoto:"",
          address:"",
          expectedSalary:"",
          userinfoBlackCount:"",
          positionList:"",
          state:"",
          //oken: loca
          // lStorage.getItem('logintoken')
        },
        // rules表单验证
        rules: {
          positionId:[{required:true, message: '请输入期望薪资', trigger: 'blur' }],
          expectedSalaryId:[{required:true, message: '请输入期望职位', trigger: 'blur' }],
          contactPerson:[{required:true, message: '请输入邮箱', trigger: 'blur' }],
          nation:[{required:true, message: '请输入民族', trigger: 'blur' }],
          nationId:[{required:true, message: '请输入籍贯', trigger: 'blur' }],
          political:[{required:true, message: '请输入政治面貌', trigger: 'blur' }],
          religiousbelief:[{required:true, message: '请输入宗教信仰', trigger: 'blur' }],
          latitude:[{required:true, message: '请输入公司纬度', trigger: 'blur' }],
          detailsaAddress:[{required:true, message: '请输入详细地址', trigger: 'blur' }],
          companyCode:[{required:true, message: '请输入婚姻状态', trigger: 'blur' }],
          companyProfile:[{required:true, message: '请输入公司简介', trigger: 'blur' }],
          developmentTrend:[{required:true, message: '请输入人才发展趋向', trigger: 'blur' }],
          firmName:[{required:true, message: '请输入企业名称', trigger: 'blur' }],
          legalRepresentative:[{required:true, message: '请输入法定代表人', trigger: 'blur' }],
          companyTypeTitle:[{required:true, message: '请输入企业类型', trigger: 'blur' }],
          registeredCapital:[{required:true, message: '请输入注册资本', trigger: 'blur' }],
          registeredAddress:[{required:true, message: '请输入注册地址', trigger: 'blur' }],
          businessTerm:[{required:true, message: '请输入营业期限', trigger: 'blur' }],
          eachDistrict:[{required:true,message: '请输入所属地区', trigger: 'blur' }],
          unifiedSocialCreditCode:[{required:true, message: '请输入社会信用代码', trigger: 'blur' }],
          subordinateToIndustry:[{required:true, message: '请输入所属行业', trigger: 'blur' }],
          registrationAuthority:[{required:true, message: '请输入登记机关', trigger: 'blur' }],
          companyTel:[{required:true, message: '请输入公司电话', trigger: 'blur' }],
          // companyType:[{required:true, message: '请输入公司行业类型id', trigger: 'blur' }],

        },

        formInline: {
          page: 1,
          limit: 10,
          id: '',
          name:'',
          value1:'',


          // token: localStorage.getItem('logintoken')
        },
        // 删除部门
        seletedata: {
          ids: '',
          token: localStorage.getItem('logintoken')
        },
        userparm: [], //搜索权限
        listData: [], //用户数据
        // 分页参数
        pageparm: {
          currentPage: 1,
          pageSize: 10,
          total: 10
        }
      }
    },
    // 注册组件
    components: {
      Pagination
    },
    /**
     * 数据发生改变
     */

    /**
     * 创建完毕
     */
    created() {
      this.getdata(this.formInline)
    },

    /**
     * 里面的方法只有被调用才会执行
     */
    methods: {
      lazyLoad(node, resolve) {
        var {level} = node;
        if(level==0){
          this.$axios.get("http://localhost:8080/manage/manage/userinfo/list",
            {params:{parentId:0}}).then((response)=>{

            var nodes=Array.from(response.data.data).map(item=>({
              value: item.id,
              label: `${item.title}`,
              leaf:level>=2
            }));
            resolve(nodes);
          });
        }else if(level==1||level==2){
          this.$axios.get("http://localhost:8080/manage/manage/userinfo/list",
            {params:{parentId:node.value}}).then((response)=>{


            var nodes=Array.from(response.data.data).map(item=>({
              value: item.id,
              label: `${item.title}`,
              leaf:level>=2
            }));
            resolve(nodes);
          });
        }else{
          resolve(null);
        }


      },

      resetpasswords(row){
        this.$confirm('确定要重置密码吗?', '信息', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        })
          .then(() => {
            //this.$axios.post("http://localhost:8080/manage/insert",this.editForm)
            this.$axios.get("http://localhost:8080/manage/userinfo/resetpasswords?id="+row.id)//delete?id="+id
              .then(res => {
                if (res.data) {
                  this.$message({
                    type: 'success',
                    message: '已重置密码!',
                  })
                  this.getdata(this.formInline)

                } else {
                  this.$message({
                    type: 'info',
                    message: res.data.msg
                  })
                }
              })
              .catch(err => {
                this.loading = false
                this.$message.error('重置密码失败，请稍后再试！')
              })
          })
      },
      resetpic(row){
        this.$confirm('确定要重置头像吗?', '信息', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        })
          .then(() => {
            //this.$axios.post("http://localhost:8080/manage/insert",this.editForm)
            this.$axios.get("http://localhost:8080/manage/userinfo/resetpic?id="+row.id)//delete?id="+id
              .then(res => {
                if (res.data) {
                  this.$message({
                    type: 'success',
                    message: '已重置头像!',
                  })
                  this.getdata(this.formInline)

                } else {
                  this.$message({
                    type: 'info',
                    message: res.data.msg
                  })
                }
              })
              .catch(err => {
                this.loading = false
                this.$message.error('重置头像失败，请稍后再试！')
              })
          })
      },
      // 获取列表
      getdata(name) {
        this.loading = true
        this.$axios.get("http://localhost:8080/manage/userinfo/list",{params:{
            name:this.formInline.name,
            // value1:this.formInline.value1[0],
            // value2:this.formInline.value1[1],
            pageNum:this.formInline.page,
            pageSize:this.formInline.limit,
          }}).then(res=>{
          this.loading = false

          if (res.data.msg != "success") {
            this.$message({
              type: 'info',
              message: res.data.msg
            })
          } else {
            this.listData = res.data.adminPageInfo.list;
            // 分页赋值
            this.pageparm.currentPage =  res.data.adminPageInfo.pageNum
            this.pageparm.pageSize =  res.data.adminPageInfo.pageSize
            this.pageparm.total = res.data.adminPageInfo.total
          }
        })
          .catch(err => {
            this.loading = false
            console.log(err)
            this.$message.error('加载失败，请稍后再试！')
          })
      },
      // 分页插件事件
      callFather(parm) {
        this.formInline.page = parm.currentPage
        this.formInline.limit = parm.pageSize
        this.getdata(this.formInline)
      },
      // 搜索事件
      search() {
        this.getdata(this.formInline);
      },handleEditcom: function(index, row) {
        this.editFormVisiblea = true
        this.editForm = row
      },


      //显示编辑界面
      handleEdit: function(index, row) {
        this.editFormVisible = true;
        if (row != undefined && row != 'undefined') {
          this.title = '修改'
          this.editForm.id=row.id
          this.editForm.height = row.height
          this.editForm.weight = row.weight

          this.editForm.email = row.email
          this.editForm.birthday = row.birthday
          this.editForm.maritalStatus = row.maritalStatus
          this.editForm.companyEmail = row.companyEmail
          this.editForm.longitude = row.longitude
          this.editForm.religiousBelief = row.religiousBelief
          this.editForm.politicalOutlook= row.politicalOutlook

          this.editForm.expectedSalary =row.expectedSalary
          this.editForm.position = row.position
          this.editForm.companyProfile = row.companyProfile
          this.editForm.developmentTrend = row.developmentTrend
          this.editForm.firmName = row.firmName
          this.editForm.legalRepresentative = row.legalRepresentative
          this.editForm.operatingState = row.operatingState
          this.editForm.registeredCapital = row.registeredCapital
          this.editForm.registeredAddress = row.registeredAddress
          this.editForm.businessTerm = row.businessTerm
          this.editForm.eachDistrict = row.eachDistrict
          this.editForm.unifiedSocialCreditCode = row.unifiedSocialCreditCode
          this.editForm.companyTypeTitle = row.companyTypeTitle
          this.editForm.subordinateToIndustry = row.subordinateToIndustry
          this.editForm.registrationAuthority = row.registrationAuthority
          this.editForm.companyEmail = row.companyEmail
          this.editForm.companyTypeId=row.companyTypeId

          this.editForm.addressId=row.addressId
          this.editForm.addressList=row.addressList
          this.editForm.address=row.address
          this.editForm.companyTypeList=row.companyTypeList
          this.editForm.companyType=row.companyType
          this.editForm.companyScaleList=row.companyScaleList
          this.editForm.companyScale=row.companyScale


          this.zid=[
            this.editForm.address.province.id,
            this.editForm.address.city.id,
            this.editForm.address.id
          ]
          // console.log("====================222222222")
          // console.log(this.editForm.address.province.title)



          this.isShowAddressInfo = false;
          // 这里搞个定时器重新载入一下组件就可以触发组件拉取数据
          setTimeout(() => {
            this.isShowAddressInfo = true;
          }, 500);





        } else {
          this.title = '添加'
          this.editForm.id=''
          this.editForm.sort = ''
          this.editForm.title = ''
        }
      },
      // 编辑、增加页面保存方法
      submitForm(formName) {
        //修改
        this.$refs.editForm.validate((valid) => {//editForm
          if (valid) {
            this.editForm.addressId=this.zid[2];
            this.$axios.post("http://localhost:8080/manage/userinfo/updata",this.editForm)

              .then(res=>{
                this.editFormVisible = false
                this.loading = false
                this.getdata();
                if (res.data) {
                  this.getdata(this.formInline)
                  this.$message({
                    type: 'success',
                    message: '修改成功！'
                  })
                } else {
                  this.$message({
                    type: 'info',
                    message: res.data
                  })
                }

              });



          } else {
            return false
          }
        })
      },
      // 删除
      deleteUser(index, row) {
        this.$confirm('确定要删除吗?', '信息', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        })
          .then(() => {
            //this.$axios.post("http://localhost:8080/manage/insert",this.editForm)
            this.$axios.get("http://localhost:8080/manage/userinfo/delete?id="+row.id)//delete?id="+id
              .then(res => {
                if (res.data) {
                  this.$message({
                    type: 'success',
                    message: '已删除!',
                  })
                  this.getdata(this.formInline)

                } else {
                  this.$message({
                    type: 'info',
                    message: res.data.msg
                  })
                }
              })
              .catch(err => {
                this.loading = false
                this.$message.error('删除失败，请稍后再试！')
              })
          })
          .catch(() => {
            this.$message({
              type: 'info',
              message: '已取消删除'
            })
          })
      },
      // 关闭编辑、增加弹出框
      closeDialog() {
        this.editFormVisible = false
      }
    }
  }
</script>

<style scoped>
  .user-search {
    margin-top: 20px;
  }
  .userRole {
    width: 100%;
  }
</style>

